{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "from common import cut_text\n",
    "from sklearn.metrics import accuracy_score, recall_score\n",
    "import pandas as pd\n",
    "import pickle\n",
    "import seaborn as sns"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "\n",
    "\n",
    "\n",
    "# 从文件读取训练好的模型 进行预测\n",
    "def use_model_predict(sname, model_file_name, model_dir, path, header):\n",
    "    # 从文件读取TF-IDF模型\n",
    "    with open(\"../model/TF-IDF/%s_TF_IDF_MODEL.pkl\" % sname, \"rb\") as f:\n",
    "        tf_idf_model = pickle.load(f)\n",
    "\n",
    "    # 导入停用词表\n",
    "    with open(\"../data/stop_words.txt\", 'r', encoding=\"utf-8-sig\") as f:\n",
    "        line = f.readline()\n",
    "        stopwords = line.split(\",\")\n",
    "\n",
    "    # 从文件读取模型\n",
    "    with open(\"../model/%s/%s\" % (model_dir, model_file_name), \"rb\") as f:\n",
    "        mnb_model = pickle.load(f)\n",
    "\n",
    "    # 读取数据\n",
    "    df = pd.read_csv(path, names=header)\n",
    "    # 随机取10%数据作为测试集\n",
    "    dfSample = df.sample(frac=0.1)\n",
    "\n",
    "    # 分词\n",
    "    dfSampleCut = dfSample['review'].map(lambda x: cut_text(x, stopwords))\n",
    "\n",
    "    # 正确结果\n",
    "    true_y = dfSample['label']\n",
    "    # 分词转TF-IDF后 使用模型进行预测得到预测结果\n",
    "    pred_y = mnb_model.predict(tf_idf_model.transform(dfSampleCut))\n",
    "\n",
    "    return true_y, pred_y\n",
    "\n",
    "\n",
    "# 根据预测结果 计算指标\n",
    "def cal_metrics(sname, model_file_name, model_dir, path, header, repeat=1):\n",
    "    sum_accuracy_score = 0\n",
    "    sum_recall_score = 0\n",
    "    # 进行50次随机取样预测，计算准确率平均值\n",
    "    for i in range(repeat):\n",
    "        true_y, pred_y = use_model_predict(sname=sname, model_file_name=model_file_name, model_dir=model_dir, path=path,\n",
    "                                           header=header)\n",
    "        # 计算准确率\n",
    "        sum_accuracy_score += accuracy_score(true_y, pred_y)\n",
    "        # 计算召回率\n",
    "        sum_recall_score += recall_score(true_y, pred_y)\n",
    "\n",
    "    # 平均准确率\n",
    "    avg_accuracy_score = sum_accuracy_score / repeat\n",
    "    # 平均召回率\n",
    "    avg_recall_score = sum_recall_score / repeat\n",
    "    return avg_accuracy_score, avg_recall_score\n",
    "\n",
    "\n",
    "# 根据数据类型获取数据路径\n",
    "def getDataPathAndHeader(sname):\n",
    "    header = ['label', 'review']\n",
    "    if sname == 'weibo':\n",
    "        return \"../data/weibo_senti_100k.csv\", header\n",
    "    elif sname == 'waimai':\n",
    "        return \"../data/waimai_10k.csv\", header\n",
    "    elif sname == 'shopping':\n",
    "        header = ['cat', 'label', 'review']\n",
    "        return \"../data/online_shopping_10_cats.csv\", header\n",
    "\n",
    "\n",
    "# 根据模型名成、数据名称获取模型路径\n",
    "def getModelFileName(model_name, sname):\n",
    "    if model_name == 'Bayes':\n",
    "        return sname + \"_MNB_MODEL.pkl\"\n",
    "    elif model_name == 'AdaBoostBayes':\n",
    "        return sname + \"_ADABOOST_MNB_MODEL.pkl\"\n",
    "    elif model_name == 'DecisionTree':\n",
    "        return sname + \"_DT_MODEL.pkl\"\n",
    "    elif model_name == 'RandomForest':\n",
    "        return sname + \"_RF_MODEL.pkl\"\n",
    "    elif model_name == 'RGF':\n",
    "        return sname + \"_RGF_MODEL.pkl\"\n",
    "\n",
    "\n",
    "# 计算每一种模型的指标\n",
    "def CalEveryModelMetrixs():\n",
    "    # 三类数据\n",
    "    snames = ['weibo', 'waimai', 'shopping']\n",
    "    # 五大模型dir\n",
    "    model_names = ['Bayes', 'AdaBoostBayes', 'DecisionTree', 'RandomForest', 'RGF']\n",
    "    # 保存结果\n",
    "    data_dir = {}\n",
    "    # 遍历三类数据集\n",
    "    for sname in snames:\n",
    "        model_metrix_dir = {}\n",
    "        for model_name in model_names:\n",
    "            model_file_name = getModelFileName(model_name, sname)\n",
    "            path, header = getDataPathAndHeader(sname)\n",
    "            accuracy_score, recall_score = cal_metrics(sname=sname, model_file_name=model_file_name,\n",
    "                                                       model_dir=model_name,\n",
    "                                                       path=path, header=header)\n",
    "            model_metrix_dir[model_name] = [accuracy_score, recall_score]\n",
    "        data_dir[sname] = model_metrix_dir\n",
    "    return data_dir\n",
    "\n",
    "\n",
    "# 将结果转换成适合绘图的字典结构\n",
    "def convert_to_draw(result_dict):\n",
    "    draw_dict = {}\n",
    "    for dataType in result_dict:\n",
    "        tmp_draw_dict = {}\n",
    "        dataType_list = []\n",
    "        metrix_list = []\n",
    "        metrix_name = []\n",
    "        model_list = []\n",
    "        for model in result_dict[dataType]:\n",
    "            metrix_list.append(result_dict[dataType][model][0])\n",
    "            metrix_name.append('accuracy')\n",
    "            dataType_list.append(dataType)\n",
    "            model_list.append(model)\n",
    "            metrix_list.append(result_dict[dataType][model][1])\n",
    "            metrix_name.append('recall')\n",
    "            dataType_list.append(dataType)\n",
    "            model_list.append(model)\n",
    "        tmp_draw_dict['metrix_value'] = metrix_list\n",
    "        tmp_draw_dict['dataType'] = dataType_list\n",
    "        tmp_draw_dict['metrix_name'] = metrix_name\n",
    "        tmp_draw_dict['model'] = model_list\n",
    "        draw_dict[dataType] = tmp_draw_dict\n",
    "    return draw_dict\n",
    "\n",
    "# 进行绘图\n",
    "def draw():\n",
    "    result_dict = CalEveryModelMetrixs()\n",
    "    draw_dict = convert_to_draw(result_dict)\n",
    "    for dataType in draw_dict:\n",
    "        sns.lineplot(x='model', y='metrix_value', hue='metrix_name', data=pd.DataFrame(draw_dict[dataType]))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "result_dict = {'weibo': {'Bayes': [0.5405457212387905, 0.1853549580784425], 'AdaBoostBayes': [0.5000083341667501, 0.0], 'DecisionTree': [0.5389455612227889, 0.38964545863684097], 'RandomForest': [0.5544971163783045, 0.3034687380194356], 'RGF': [0.5493132646597993, 0.20767422866001034]}, 'waimai': {'Bayes': [0.6679736381079503, 0.01275], 'AdaBoostBayes': [0.6663051639275882, 0.0], 'DecisionTree': [0.6533744890297822, 0.06225], 'RandomForest': [0.6653875031283891, 0.0135], 'RGF': [0.6643029949111537, 0.0035]}, 'shopping': {'Bayes': [0.5217051917225559, 0.07208371418665489], 'AdaBoostBayes': [0.49457569337135393, 0.0], 'DecisionTree': [0.5540917273350007, 0.24209663693384184], 'RandomForest': [0.5382091026396699, 0.1202130677341066], 'RGF': [0.5235371895560194, 0.09528162133198853]}}\n",
    "\n",
    "draw_dict = convert_to_draw(result_dict)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<AxesSubplot:xlabel='model', ylabel='metrix_value'>"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "sns.lineplot(x='model', y='metrix_value', hue='metrix_name', data=pd.DataFrame(draw_dict['weibo']))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<AxesSubplot:xlabel='model', ylabel='metrix_value'>"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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jquvvrp5g7x48WIA+vTpw4cfdm7TtXr1aq688koWL17Mn//854xJpCPr169njz32oLS0lMcee4zVq1dnNX1by5FL2SSCj7r7xcBGd7+RcDPZwR1MIyKSFxdffDH19fWMHz+eMWPGcPHFFwNw5JFHsnz58uaTxW1xd8466yyuuOIKBg0axG9+8xu+/OUvZ93/0WmnnUZ1dTXjxo3jpptuYv/998/JcuSSpbJMhyOaPePuU8zsceBrwFvAM95BX0NJqKqq8upqXVgksqtasWJFTtvAC1GmdWhmi9x9m2tjs7mhbK6Z9QMuJlwC2jt6LSIi3Vg2ieAGd28knB/Y4UcBIiI7gx/+8IfceeedrcpmzJjBhRdemKeIui6bRPCqmf0FuAN41DvbpiQisgu58MILu/VGP5NsThbvDzxM+BP7VWb2KzP7WDJhiYjIjpJNN9Sb3P137v454EBgN0IzkYiIdGPZHBFgZh83s/8HLCLcVNal3kdFRCT/srmzeBWwGPgd8B1335hUUCIisuNkc7J4vLt/0NZAM7vA3f87BzGJiBSEhoYGSkqy2QwnI5tzBG0mgciMLsYiIrLTOPHEE5k8eTJjxoxh7ty5APzlL39h0qRJTJgwgaOPPhoI3UzPmjWLcePGMX78eO6++24Aevfu3VzXXXfdxcyZM4HQXfU555zDwQcfzHe/+12eeeYZDj30UCZOnMjUqVN58cUXAWhsbOS8885j7NixjB8/nquvvppHH32UE088sbnehx56iM9+9rNdXtZcpiL9waiI5Nz371vG8jc62g/NzuhBu3HpZ8a0O871119P//792bx5MwcddBDTp0/nK1/5Co8//jgjR47kvffeA+Dyyy+nb9++LF26FIB169Z1OP+amhqeeOIJiouL+eCDD/jb3/5GSUkJDz/8MN/73ve4++67mTt3LqtWrWLJkiWUlJTw3nvv0a9fP772ta9RW1tLZWUlN9xwA2ee2fV+P3OZCHRfgYjsMq666iruueceAF5//XXmzp3L4YcfzsiRIwHo378/AA8//DC3335783T9+vXrsO4ZM2ZQXFwMhE7pzjjjDF5++WXMjPr6+uZ6zznnnOamo9T8Tj/9dG655RZmzZrFk08+yU033dTlZdURgYjs1Drac0/CggULePjhh3nyySepqKjgiCOO4MADD+SFF17odB3R3+8CbNNR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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "sns.lineplot(x='model', y='metrix_value', hue='metrix_name', data=pd.DataFrame(draw_dict['waimai']))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<AxesSubplot:xlabel='model', ylabel='metrix_value'>"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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dzNnzhwGDBjAnDlzmDZtGpdddhmnnHIKl112GYsXL+a8884D4KabbuLee+8FYP78+QwfPpzS0lK/MU2ePJkbb7yRk08+mWOPPZa5c+cCsH//fs4880wGDRpE3759ef311+u8DYDf7Qg6Va3xBtxT06225UNxGzx4sBpjGq81a9bU+PrmzZs1NjZWv/rqKy0pKdFBgwbplClTtLS0VF977TUdO3as3nbbbfrss8+qqmp2drZ2795d9+/fr88884z++te/Ll/XPffco4MGDdK8vDxVVV20aJH+9Kc/VVXVAwcOaK9evfSDDz7QHj166MaNG6uN6YorrtCLLrpIS0pKdPXq1dqtWzdVVS0qKtLc3FxVVc3KytJu3bppaWlpnbZBVavdjsPZh0CG+vlPrbVqSFV/F/z0Y4wxR6Zr16707dsXgN69e3PmmWciIvTt25ctW7aQmZnJvHnzePjhhwF3Sup3333nd11jxowhKSnpkOnJycn8+9//Zvjw4fzlL3+hW7duNcY0btw4YmJi6NWrFzt37gTcwfbtt9/OkiVLiImJYfv27eWv1bYNAAsWLPC7HSeccEKAe6x6gZw1lAhcBfTG9SMAQFWvDFo0xhhTR02aNCl/HBMTU/48JiaG4uJiYmNjefnll+nZs2el5T777LND1tW0adNq32fVqlW0bt2aHTt2BBSTOwCH559/nqysLFasWEF8fDxdunQp7zFd2zaUrcffdgRTIGMNPQscDYwCPsRdj2BfKIIyxpgjNWrUKB577LHyP+QvvvgCgObNm7NvX93+urZu3cojjzzCF198wTvvvOM3idQmNzeXo446ivj4eBYtWsTWrVsDWr667QimQBLBcap6F3BAVWfiOpMNDXpExhgTBHfddRdFRUX069eP3r17c9dddwFw+umns2bNmvLG4uqoKldddRUPP/ww7dq146mnnuLqq68OePyjSZMmkZGRQd++fZk1axbHH398ULYjmKQsy9Q6o8gyVR0iIkuAXwE/AMu0lrGGRGQ08DcgFnhSVR+o8vq1uIvelAD7gWtUdU1N60xPT9eMjIw6xW2MiTxr164Nah14NPK3D0Vkhaoecm5sICWC6SKSCtwFzAPWAA/WtICIxAKPA+cAvYCJItKrymwvqGpfVR0APAT8OYCYjDHGHKFAehY/o6oluPaBuo44OgTYqKqbAERkNjAW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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "sns.lineplot(x='model', y='metrix_value', hue='metrix_name', data=pd.DataFrame(draw_dict['shopping']))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 46,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'metrix_value': [0.9101481599490202,\n",
       "  0.9148936170212766,\n",
       "  0.8282619085550422,\n",
       "  0.7478125,\n",
       "  0.9971323880834794,\n",
       "  0.9951799485861182,\n",
       "  0.9969730763103394,\n",
       "  0.9959564541213064,\n",
       "  0.8459455153735861,\n",
       "  0.795729764181007],\n",
       " 'dataType': ['shopping',\n",
       "  'shopping',\n",
       "  'shopping',\n",
       "  'shopping',\n",
       "  'shopping',\n",
       "  'shopping',\n",
       "  'shopping',\n",
       "  'shopping',\n",
       "  'shopping',\n",
       "  'shopping'],\n",
       " 'metrix_name': ['accuracy',\n",
       "  'recall',\n",
       "  'accuracy',\n",
       "  'recall',\n",
       "  'accuracy',\n",
       "  'recall',\n",
       "  'accuracy',\n",
       "  'recall',\n",
       "  'accuracy',\n",
       "  'recall'],\n",
       " 'model': ['Bayes',\n",
       "  'Bayes',\n",
       "  'AdaBoostBayes',\n",
       "  'AdaBoostBayes',\n",
       "  'DecisionTree',\n",
       "  'DecisionTree',\n",
       "  'RandomForest',\n",
       "  'RandomForest',\n",
       "  'RGF',\n",
       "  'RGF']}"
      ]
     },
     "execution_count": 46,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "draw_dict['shopping']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 47,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'metrix_value': [0.9101481599490202,\n",
       "  0.9148936170212766,\n",
       "  0.8282619085550422,\n",
       "  0.7478125,\n",
       "  0.9971323880834794,\n",
       "  0.9951799485861182,\n",
       "  0.9969730763103394,\n",
       "  0.9959564541213064,\n",
       "  0.8459455153735861,\n",
       "  0.795729764181007],\n",
       " 'dataType': ['weibo',\n",
       "  'weibo',\n",
       "  'weibo',\n",
       "  'weibo',\n",
       "  'weibo',\n",
       "  'weibo',\n",
       "  'weibo',\n",
       "  'weibo',\n",
       "  'weibo',\n",
       "  'weibo'],\n",
       " 'metrix_name': ['accuracy',\n",
       "  'recall',\n",
       "  'accuracy',\n",
       "  'recall',\n",
       "  'accuracy',\n",
       "  'recall',\n",
       "  'accuracy',\n",
       "  'recall',\n",
       "  'accuracy',\n",
       "  'recall'],\n",
       " 'model': ['Bayes',\n",
       "  'Bayes',\n",
       "  'AdaBoostBayes',\n",
       "  'AdaBoostBayes',\n",
       "  'DecisionTree',\n",
       "  'DecisionTree',\n",
       "  'RandomForest',\n",
       "  'RandomForest',\n",
       "  'RGF',\n",
       "  'RGF']}"
      ]
     },
     "execution_count": 47,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "draw_dict['weibo']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 48,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "{'weibo': {'metrix_value': [0.9101481599490202, 0.9148936170212766, 0.8282619085550422, 0.7478125, 0.9971323880834794, 0.9951799485861182, 0.9969730763103394, 0.9959564541213064, 0.8459455153735861, 0.795729764181007], 'dataType': ['weibo', 'weibo', 'weibo', 'weibo', 'weibo', 'weibo', 'weibo', 'weibo', 'weibo', 'weibo'], 'metrix_name': ['accuracy', 'recall', 'accuracy', 'recall', 'accuracy', 'recall', 'accuracy', 'recall', 'accuracy', 'recall'], 'model': ['Bayes', 'Bayes', 'AdaBoostBayes', 'AdaBoostBayes', 'DecisionTree', 'DecisionTree', 'RandomForest', 'RandomForest', 'RGF', 'RGF']}, 'waimai': {'metrix_value': [0.9101481599490202, 0.9148936170212766, 0.8282619085550422, 0.7478125, 0.9971323880834794, 0.9951799485861182, 0.9969730763103394, 0.9959564541213064, 0.8459455153735861, 0.795729764181007], 'dataType': ['waimai', 'waimai', 'waimai', 'waimai', 'waimai', 'waimai', 'waimai', 'waimai', 'waimai', 'waimai'], 'metrix_name': ['accuracy', 'recall', 'accuracy', 'recall', 'accuracy', 'recall', 'accuracy', 'recall', 'accuracy', 'recall'], 'model': ['Bayes', 'Bayes', 'AdaBoostBayes', 'AdaBoostBayes', 'DecisionTree', 'DecisionTree', 'RandomForest', 'RandomForest', 'RGF', 'RGF']}, 'shopping': {'metrix_value': [0.9101481599490202, 0.9148936170212766, 0.8282619085550422, 0.7478125, 0.9971323880834794, 0.9951799485861182, 0.9969730763103394, 0.9959564541213064, 0.8459455153735861, 0.795729764181007], 'dataType': ['shopping', 'shopping', 'shopping', 'shopping', 'shopping', 'shopping', 'shopping', 'shopping', 'shopping', 'shopping'], 'metrix_name': ['accuracy', 'recall', 'accuracy', 'recall', 'accuracy', 'recall', 'accuracy', 'recall', 'accuracy', 'recall'], 'model': ['Bayes', 'Bayes', 'AdaBoostBayes', 'AdaBoostBayes', 'DecisionTree', 'DecisionTree', 'RandomForest', 'RandomForest', 'RGF', 'RGF']}}\n"
     ]
    }
   ],
   "source": [
    "print(draw_dict)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 49,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "{'weibo': {'Bayes': [0.9101481599490202, 0.9148936170212766], 'AdaBoostBayes': [0.8282619085550422, 0.7478125], 'DecisionTree': [0.9971323880834794, 0.9951799485861182], 'RandomForest': [0.9969730763103394, 0.9959564541213064], 'RGF': [0.8459455153735861, 0.795729764181007]}, 'waimai': {'Bayes': [0.9101481599490202, 0.9148936170212766], 'AdaBoostBayes': [0.8282619085550422, 0.7478125], 'DecisionTree': [0.9971323880834794, 0.9951799485861182], 'RandomForest': [0.9969730763103394, 0.9959564541213064], 'RGF': [0.8459455153735861, 0.795729764181007]}, 'shopping': {'Bayes': [0.9101481599490202, 0.9148936170212766], 'AdaBoostBayes': [0.8282619085550422, 0.7478125], 'DecisionTree': [0.9971323880834794, 0.9951799485861182], 'RandomForest': [0.9969730763103394, 0.9959564541213064], 'RGF': [0.8459455153735861, 0.795729764181007]}}\n"
     ]
    }
   ],
   "source": [
    "print(result_dict)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.8"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
